export function runTask(task) {
  // 第一种：同步执行，页面卡顿
  task()
  // 第一种：异步执行，页面卡顿
  Promise.resolve().then(task)
  // 第二种：异步执行，页面不会卡顿
  return new Promise((resolve) => {
    _run(task, resolve)
  })
}
function _run(task, callback) {
  requestIdleCallback((deadline) => {
    if (deadline.timeRemaining() > 0) {
      task()
      callback()
    } else {
      _run(task, callback)
    }
  })
}
